package model.comunication;

import java.util.ArrayList;
import java.util.List;

import model.IRHorarioCursada;
import model.IRHorarioInstructor;
import model.dba.IRHorarioInstructorDAO;



public class IIRHorarioInstructor{
	private IRHorarioInstructorDAO irHorarioInstructorDAO;
	private static IIRHorarioInstructor  irHorarioInstructorInterface;

	private IIRHorarioInstructor() {
		irHorarioInstructorDAO = IRHorarioInstructorDAO.getInstance();
	}

	public static IIRHorarioInstructor getInstance() {
		if (irHorarioInstructorInterface == null) {
			irHorarioInstructorInterface = new IIRHorarioInstructor();
		}
		return irHorarioInstructorInterface;
	}

	/**
	 * Crea el objeto
	 * 
	 * @param id
	 * @param nombre
	 * @return
	 */
	public IRHorarioInstructor getIRHorarioInstructor(Integer idHorario, String dniInstructor) {
		return new IRHorarioInstructor(idHorario, dniInstructor);
	}

	/**
	 * Crea el objeto
	 * 
	 * @param nombre
	 * @return
	 */
//	public IRHorarioInstructor getIRHorarioInstructor(Integer idCursada, String dniInstructor) {
//		return new IRHorarioInstructor(idCursada,dniInstructor);
//	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
	// TODO areglar para busacar para que te de un objeto
	 public List<IRHorarioInstructor> findAll(String dniInstructor) {
	 return this.irHorarioInstructorDAO.findAll(dniInstructor);
	 }

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
//	 En un futuro se puede poner nombre(primero agragar a la DAO
	 public IRHorarioInstructor findIRHorarioInstructor(String dniInstructor) {
	 return this.irHorarioInstructorDAO.find(dniInstructor);
	 }

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
	public IRHorarioInstructor getIRHorarioInstructor(Integer id) {
		return this.irHorarioInstructorDAO.get(id);
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @return
	 */
	public List<IRHorarioInstructor> getAllIRHorarioInstructor() {
		return this.irHorarioInstructorDAO.getAll();
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param ids
	 * @return
	 */
	public List<IRHorarioInstructor> getSelectedSalas(Integer... ids) {// VER por exception
		List<IRHorarioInstructor> idList = new ArrayList<IRHorarioInstructor>();

		for (Integer id : ids) {
			idList.add(this.irHorarioInstructorDAO.get(id));
		}
		return idList;
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param Sala
	 * @return
	 */
	public Integer addIRHorarioInstructor(IRHorarioInstructor iRHorarioInstructor) {
		return this.irHorarioInstructorDAO.add(iRHorarioInstructor);
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
	public boolean deleteIRHorarioInstructor(Integer id) {
		return this.irHorarioInstructorDAO.delete(id);
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param Sala
	 * @return
	 */
	// En un futuro se puede poner nombre(primero agragar a la DAO
	// public boolean updateIRCursadaInstructor(IRCursadaInstructor sala) {
	// return this.salaDAO.update(sala);
	// }

}
